package com.yuw.exceptiondemo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class TestDriver {
	public static void main(String[] args) {
		test00();
		
	}
	/**
	 * 练习题答案：不适用String类的自带方法，统计字符串的长度
	 */
	private static void test00() {
		String str="frgffdsgadsdgf";
		//字符串长度
		int count =0;
		
		//try-catch主要是为了保证程序正常运行，显示处理了非检查性异常
		try {
			//运行时异常，一般不需要显示处理
			while(str.charAt(count++)!='\0') ;
		} catch (Exception e) {
			// 发生异常时的count的值就是字符串的长度
			
		}
		System.out.println("字符串的长度为："+(count-1));
		System.out.println("字符串的长度为："+str.length());

			
		
	}

	
	
	
	
	
	/**
	 * 异常的分类，非运行时异常（检查性异常、编译时异常）必须进行显示处理才可以通过编译 
	 */
	private static void test03() {
		try {
			FileInputStream is =new FileInputStream("E:\\temp\\00.txt");
		
			System.out.println("执行了try部分");
			
		}catch (FileNotFoundException e) {
			System.out.println("执行力catch部分");
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
	}finally {
		System.out.println("执行了finally部分");
	}
		
	}
	
	/**
	 * 异常的分类，非运行时异常（检查性异常、编译时异常）必须进行显示处理才可以通过编译 
	 */
	private static void test02() {
		try {
			FileInputStream is =new FileInputStream("E:\\temp\\05.txt");//此处语句块发生了异常，则直接跳转到catch中进行处理，try中发生异常位置之后的代码则不会再被执行；
		
			System.out.println("执行了try部分");
			
		}catch (FileNotFoundException e) {
			System.out.println("执行力catch部分");
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
	}finally {
		System.out.println("执行了finally部分");
	}
		
	}
	
	/**
	 * 异常的分类，运行时异常（非检查性异常）
	 */
	private static void test01() {
		int[] arr=new int [3];
		for(int i =0;i<arr.length ;i++) {
			System.out.println("  "+arr[i]);
			
		}
		
	}

}
